﻿using FluentNHibernate.Mapping;
using Sebrae.Academico.Trilhas.Dominio.Classes;

namespace Sebrae.Academico.Trilhas.BM.Mapeamentos
{

    public sealed class TrilhaNivelMap : ClassMap<TrilhaNivel>
    {
        /// <summary>
        /// Construtor.
        /// </summary>
        public TrilhaNivelMap()
        {
            Table("TB_TRILHANIVEL");
            LazyLoad();
            Id(x => x.ID).GeneratedBy.Identity().Column("ID_TRILHANIVEL");
            References(x => x.PreRequisito).Column("ID_TRILHANIVELPREREQ");
            Map(x => x.Nome).Column("NM_TrilhaNivel").Not.Nullable();
            Map(x => x.QuantidadeDiasPrazo).Column("QT_DIASPRAZO");
            HasMany(x => x.ListaItemTrilha).KeyColumn("ID_TRILHANIVEL");
            HasMany(x => x.ListaPreRequisito).KeyColumn("ID_TRILHANIVELPREREQ");
            HasMany(x => x.ListaUsuarioTrilha).KeyColumn("ID_TRILHANIVEL");
        }
    }
}
